package main

import (
	"fmt"
	"strings"
)

// 空接口
type martian struct{}

func (m martian) talk() string {
	return "nack nack"
}

type laser int

func (la laser) talk() string {
	return strings.Repeat("pew ", int(la))
}

// 在 Go 语言中，不需要显式声明接口。
func main() {
	// 显示声明
	var t interface {
		talk() string
	}
	// 隐式声明 空的{} 就表示一个空接口
	t = martian{}
	fmt.Println(t.talk())

	t = laser(3)
	fmt.Println(t.talk())
}
